package com.tbit.uqbike.object.pojo;

import com.tbit.uqbike.constant.FaultType;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 设备故障
 *
 * @author Leon
 * 2019年11月16日 下午2:40:06
 */
@Data
@Accessors(chain = true)
public class MachineFault {
    /**
     * 设备id
     */
    @NotNull(message = "车辆id不能为空")
    private Integer machineId;
    /**
     * 申报人
     */
    private String addMan;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 故障
     * 0-其他
     * 1-车
     * 2-转把手
     * 3-车撑
     * 4-二维码
     * 5-中控
     * 6-喇叭故障
     * 7-电池
     * 8-电池锁
     * 9-头盔锁
     */
    @NotNull(message = "故障类型不能为空")
    private String faults;
    /**
     * 故障说明
     */
    @NotNull(message = "故障说明不能为空")
    private String remark;
    /**
     * 故障图片
     */
    private String imageIds;
    /**
     * 来源0运维举报1用户上报
     */
    private Integer from;
    /**
     * 经纬度合集
     */
    private String point;
    /**
     * 经度
     */
    private Double lon;

    /**
     * 纬度
     */
    private Double lat;

    private String orderNO;

    /**
     * 车辆编号
     */
    @NotNull(message = "车辆编号不能为空")
    private String userCode;

    /**
     * 设备编号
     */
    @NotNull(message = "设备编号不能为空")
    private String machineNO;

    /**
     * 区域id
     */
    @NotNull(message = "区域id不能为空")
    private Integer accountId;

    @Override
    public String toString() {
        return "MachineFault [machineId=" + machineId + ", addMan=" + addMan + ", updateTime=" + updateTime + ", faults=" + faults + ", remark=" + remark + ", imageIds=" + imageIds + "]";
    }

    public void parseFaults() {
        if (StringUtils.isBlank(this.faults)) {
            return;
        }
        if (this.from == 1) {
            return;
        }
        this.faults = FaultType.parseFaults(this.faults);
    }

}
